package ru.payment.wm;

import java.util.Date;

/**
 *
 * User: sergey
 * Date: 23.04.2009
 * Time: 17:30:41
 *
 * параметры доверия
 */
public interface Trust {

  /** атрибут id – уникальный номер доверия в системе учета WebMoney */
  String getTrustId();

  /** атрибут id – уникальный номер доверия в системе учета WebMoney */
  void setTrustId(String trustId);

  /** атрибут inv – разрешена(1) или нет(0) идентификатору в теге master выписка счетов на доверяемый кошелек purse, принадлжащий ВМ-идентификатору gettrustlist\wmid */
  boolean isAllowInvoice();

  /** атрибут inv – разрешена(1) или нет(0) идентификатору в теге master выписка счетов на доверяемый кошелек purse, принадлжащий ВМ-идентификатору gettrustlist\wmid */
  void setAllowInvoice(boolean allowInvoice);

  /** атрибут trans – разрешены(1) или нет(0) идентификатору в теге master переводы средств по доверию с доверяемого кошелека purse, принадлжащего ВМ-идентификатору gettrustlist\wmid */
  boolean isAllowTrans();

  /** атрибут trans – разрешены(1) или нет(0) идентификатору в теге master переводы средств по доверию с доверяемого кошелека purse, принадлжащего ВМ-идентификатору gettrustlist\wmid */
  void setAllowTrans(boolean allowTrans);

  /** атрибут purse – разрешен(1) или нет(0) идентификатору в теге master просмотр баланса на доверяемом кошельке purse, принадлжащем ВМ-идентификатору gettrustlist\wmid */
  boolean isAllowPurse();

  /** атрибут purse – разрешен(1) или нет(0) идентификатору в теге master просмотр баланса на доверяемом кошельке purse, принадлжащем ВМ-идентификатору gettrustlist\wmid */
  void setAllowPurse(boolean allowPurse);

  /** атрибут transhist – разрешен(1) или нет(0) идентификатору в теге master просмотр истории операций кошелька purse, принадлжащего ВМ-идентификатору gettrustlist\wmid */
  boolean isAllowTransHist();

  /** атрибут transhist – разрешен(1) или нет(0) идентификатору в теге master просмотр истории операций кошелька purse, принадлжащего ВМ-идентификатору gettrustlist\wmid */
  void setAllowTransHist(boolean allowTransHist);

  /** идентификатор которому доверено соврешать какие лиюбо действия с кошельком purse */
  String getMaster();

  /** идентификатор которому доверено соврешать какие лиюбо действия с кошельком purse */
  void setMaster(String master);

  /** доверяемый кошелек. кошелек , принадлежащий идентификатору gettrustlist\wmid над которым идентификатору master разрешено совершать какие-либо действия */
  String getPurse();

  /** доверяемый кошелек. кошелек , принадлежащий идентификатору gettrustlist\wmid над которым идентификатору master разрешено совершать какие-либо действия */
  void setPurse(String purse);

  /** суточный лимит. пороговая сумма, не больше которой может перевести с кошелька purse идентификатор master в течение суток. Например, для кошелька purse и идентификатора master установлен суточный лимит в 1 ВМР, идентификтор master 24 января 2007 года в 23:59 совершил с кошелька purse перевод по доверию в 1 ВМР, это означает, что в следующий раз идентификатор master сможет совершить такой же перевод не ранее 25 января 2007 23:59. */
  float getLimit();

  /** суточный лимит. пороговая сумма, не больше которой может перевести с кошелька purse идентификатор master в течение суток. Например, для кошелька purse и идентификатора master установлен суточный лимит в 1 ВМР, идентификтор master 24 января 2007 года в 23:59 совершил с кошелька purse перевод по доверию в 1 ВМР, это означает, что в следующий раз идентификатор master сможет совершить такой же перевод не ранее 25 января 2007 23:59. */
  void setLimit(float limit);

  /** дневной лимит. пороговая сумма, не больше которой может перевести с кошелька purse указанный идентификатор master в течение текущего дня. Например, для кошелька purse и идентификатора master установлен дневной лимит в 1 ВМР, идентификтор master 24 января 2007 года в 23:59 совершил с кошелька purse перевод по доверию в 1 ВМР, это означает, что в следующий раз идентификатор master сможет совершить такой же перевод уже 25 января 2007 00:00, так как 25 января это следующий день, отличающийся от дня совершения предыдущей операции. */
  float getDayLimit();

  /** дневной лимит. пороговая сумма, не больше которой может перевести с кошелька purse указанный идентификатор master в течение текущего дня. Например, для кошелька purse и идентификатора master установлен дневной лимит в 1 ВМР, идентификтор master 24 января 2007 года в 23:59 совершил с кошелька purse перевод по доверию в 1 ВМР, это означает, что в следующий раз идентификатор master сможет совершить такой же перевод уже 25 января 2007 00:00, так как 25 января это следующий день, отличающийся от дня совершения предыдущей операции. */
  void setDayLimit(float dayLimit);

  /** недельный лимит. пороговая сумма, не больше которой может перевести с данного кошелька идентификатор master в течение текущей недели. Например, для кошелька purse и идентификатора master установлен недельный лимит в 1 ВМР, идентификтор master 24 января 2007 года в 23:59 совершил с кошелька purse перевод по доверию в 1 ВМР, это означает, что в следующий раз идентификатор master сможет совершить такой же перевод уже 28 января 2007 00:00, так как 28 января это первый день следующей недели, отличающейся от недели совершения предыдущей операции. Обратите внимание что недели начинаются по ангийскому (американскому) варианту не в понедельник, а в воскресенье и заканчиваются в субботу. */
  float getWeekLimit();

  /** недельный лимит. пороговая сумма, не больше которой может перевести с данного кошелька идентификатор master в течение текущей недели. Например, для кошелька purse и идентификатора master установлен недельный лимит в 1 ВМР, идентификтор master 24 января 2007 года в 23:59 совершил с кошелька purse перевод по доверию в 1 ВМР, это означает, что в следующий раз идентификатор master сможет совершить такой же перевод уже 28 января 2007 00:00, так как 28 января это первый день следующей недели, отличающейся от недели совершения предыдущей операции. Обратите внимание что недели начинаются по ангийскому (американскому) варианту не в понедельник, а в воскресенье и заканчиваются в субботу. */
  void setWeekLimit(float weekLimit);

  /** месячный лимит. пороговая сумма, не больше которой может перевести с кошелька purse идентификатор master в течение текущего месяца. Например, для кошелька purse и идентификатора master установлен месячный лимит в 1 ВМР, идентификтор master 24 января 2007 года в 23:59 совершил с кошелька purse перевод по доверию в 1 ВМР, это означает, что в следующий раз идентификатор master сможет совершить такой же перевод 1 февраля 2007 00:00, так как 1 февраля это первый день следующего месяца, отличающегося от месяца совершения предыдущей операции. */
  float getMonthLimit();

  /** месячный лимит. пороговая сумма, не больше которой может перевести с кошелька purse идентификатор master в течение текущего месяца. Например, для кошелька purse и идентификатора master установлен месячный лимит в 1 ВМР, идентификтор master 24 января 2007 года в 23:59 совершил с кошелька purse перевод по доверию в 1 ВМР, это означает, что в следующий раз идентификатор master сможет совершить такой же перевод 1 февраля 2007 00:00, так как 1 февраля это первый день следующего месяца, отличающегося от месяца совершения предыдущей операции. */
  void setMonthLimit(float monthLimit);

  /** дневная сумма. общая сумма уже проведенных идентификатором master с кошелька purse операций в тот же день, месяц и год, которые указаны в дате провдения последней операции по доверию lastsumdate */
  float getDaySumma();

  /** дневная сумма. общая сумма уже проведенных идентификатором master с кошелька purse операций в тот же день, месяц и год, которые указаны в дате провдения последней операции по доверию lastsumdate */
  void setDaySumma(float daySumma);

  /**  	недельная сумма. общая сумма уже проведенных идентификатором master с кошелька purse операций в ту же неделю и год, которые указаны в дате провдения последней операции по доверию lastsumdate */
  float getWeekSumma();

  /** недельная сумма. общая сумма уже проведенных идентификатором master с кошелька purse операций в ту же неделю и год, которые указаны в дате провдения последней операции по доверию lastsumdate */
  void setWeekSumma(float weekSumma);

  /** месячная сумма. общая сумма уже проведенных идентификатором master с кошелька purse операций в тот же месяц и год, которые указаны в дате провдения последней операции по доверию lastsumdate */
  float getMonthSumma();

  /** месячная сумма. общая сумма уже проведенных идентификатором master с кошелька purse операций в тот же месяц и год, которые указаны в дате провдения последней операции по доверию lastsumdate */
  void setMonthSumma(float monthSumma);

  /** дата проведения идентификатором master последнего перевода по доверию с кошелька purse */
  Date getLastTransferDate();

  /** дата проведения идентификатором master последнего перевода по доверию с кошелька purse */
  void setLastTransferDate(Date lastTransferDate);

}
